﻿<p>
    <button type="button" class="btn btn-outline-primary" @onclick="@AddTab">
        <i class="fa fa-plus-circle"></i>
        <span>添加</span>
    </button>
    <button type="button" class="btn btn-outline-danger" 
            disabled="@RemoveEndableString" @onclick="@RemoveTab">
        <i class="fa fa-minus-circle"></i>
        <span>移除</span>
    </button>
</p>

<Tab IsBorderCard="true" @ref="TabSet">
    <TabItem Text="用户管理">
        <div>我是用户管理</div>
    </TabItem>
    <TabItem Text="菜单管理">
        <div>我是菜单管理</div>
    </TabItem>
    <TabItem Text="角色管理">
        <div>我是角色管理</div>
    </TabItem>
    <TabItem Text="部门管理">
        <div>我是部门管理</div>
    </TabItem>
    <TabItem Text="任务管理">
        <div>我是任务管理</div>
    </TabItem>
</Tab>

@code {
    private string? RemoveEndableString => (TabSet?.Items.Count() > 4) ? null : "true";

    private async Task AddTab()
    {
        if (TabSet != null)
        {
            var text = $"Tab {TabSet.Items.Count() + 1}";
            var item = new TabItem();
            var parameters = new Dictionary<string, object>
            {
                ["Text"] = text,
                ["IsActive"] = true,
                ["ChildContent"] = new RenderFragment(builder =>
                {
                    var index = 0;
                    builder.OpenElement(index++, "div");
                    builder.AddContent(index++, $"我是新建的 Tab 名称是 {text}");
                    builder.CloseElement();
                })
            };
            item.SetParametersAsync(ParameterView.FromDictionary(parameters));
            await TabSet.Add(item);
        }
    }

    private async Task RemoveTab()
    {
        if (TabSet != null)
        {
            if (TabSet.Items.Count() > 4)
            {
                var item = TabSet.Items.Last();
                await TabSet.Remove(item);
            }
        }
    }
}
